package cn.quevo.ucenter.server.service;

import cn.quevo.core.exception.CustomException;
import cn.quevo.ucenter.server.entity.AccessToken;
import cn.quevo.ucenter.server.entity.query.AccessTokenQuery;

/**
 * 授权Token生成
 * 
 * @author July july_sky@foxmail.com
 * @date 2018年3月23日 下午11:10:50
 * @Copyright ©2015-2035 湘豫(北京)科技有限公司. All Rights Reserved.
 * @version 1.0
 */
public interface AccessTokenService {

    /**
     * 创建授权Token
     * 
     * @author July july_sky@foxmail.com
     * @date 2018年3月24日 上午11:27:15
     * @param accessToken
     * @return
     * @throws CustomException
     */
    Integer createAccessToken(AccessToken accessToken) throws CustomException;
    
    /**
     * 获取Token
     * 
     * @author July july_sky@foxmail.com
     * @date 2018年3月24日 上午11:29:38
     * @param accessTokenQuery
     * @return
     * @throws CustomException
     */
    AccessToken getAccessToken(AccessTokenQuery accessTokenQuery) throws CustomException;
    
    /**
     * 刷新Token
     * 
     * @author July july_sky@foxmail.com
     * @date 2018年3月26日 下午5:16:16
     * @param accessToken
     * @return
     * @throws CustomException
     */
    Integer updateRefreshToken(AccessToken accessToken) throws CustomException;
}
